package com.dragon.modules.yuegou.model.merchant;

import com.dragon.modules.yuegou.entity.merchant.MerchantPayConfigEntity;
import com.dragon.modules.yuegou.enums.merchant.MerchantPayConfigBackType;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商户支付配置表模型类
 * 
 * @author pbuilder generated
 * @date 2020-03-06 14:04:47
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class MerchantPayConfig extends MerchantPayConfigEntity {

	/**
	 * 构造一个空商户支付配置表模型对象
	 */
	public MerchantPayConfig(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个商户支付配置表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public MerchantPayConfig(MerchantPayConfigEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个商户支付配置表模型对象
	 * 
	 * @param other 其它对象
	 */
	public MerchantPayConfig(MerchantPayConfig other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置商铺id
	 * 
	 * @param id 商铺id
	 * @return 当前对象
	 */
    public MerchantPayConfig id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public Boolean getIsWxpayOpen() {
    	return isWxpayOpen;
    }

    /**
	 * 设置是否开启微信聚合支付 0否 1是
	 * 
	 * @param isWxpayOpen 是否开启微信聚合支付 0否 1是
	 * @return 当前对象
	 */
    public MerchantPayConfig isWxpayOpen(Boolean isWxpayOpen) {
    	this.isWxpayOpen = isWxpayOpen;
    	return this;
    }

	@Override
	public String getSubMchId() {
    	return subMchId;
    }

    /**
	 * 设置微信子商户号
	 * 
	 * @param subMchId 微信子商户号
	 * @return 当前对象
	 */
    public MerchantPayConfig subMchId(String subMchId) {
    	this.subMchId = subMchId;
    	return this;
    }

	@Override
	public BigDecimal getWxProportion() {
    	return wxProportion;
    }

    /**
	 * 设置微信支付手续费比例 比如千6 填0.006
	 * 
	 * @param wxProportion 微信支付手续费比例 比如千6 填0.006
	 * @return 当前对象
	 */
    public MerchantPayConfig wxProportion(BigDecimal wxProportion) {
    	this.wxProportion = wxProportion;
    	return this;
    }

	@Override
	public Boolean getIsAlipayOpen() {
    	return isAlipayOpen;
    }

    /**
	 * 设置是否开启支付宝聚合支付
	 * 
	 * @param isAlipayOpen 是否开启支付宝聚合支付
	 * @return 当前对象
	 */
    public MerchantPayConfig isAlipayOpen(Boolean isAlipayOpen) {
    	this.isAlipayOpen = isAlipayOpen;
    	return this;
    }

	@Override
	public String getAliSgyPid() {
    	return aliSgyPid;
    }

    /**
	 * 设置2019112769491079
	 * 
	 * @param aliSgyPid 2019112769491079
	 * @return 当前对象
	 */
    public MerchantPayConfig aliSgyPid(String aliSgyPid) {
    	this.aliSgyPid = aliSgyPid;
    	return this;
    }

	@Override
	public String getAliMerchantPid() {
    	return aliMerchantPid;
    }

    /**
	 * 设置支付宝商户pid  开启支付宝支付时必传
	 * 
	 * @param aliMerchantPid 支付宝商户pid  开启支付宝支付时必传
	 * @return 当前对象
	 */
    public MerchantPayConfig aliMerchantPid(String aliMerchantPid) {
    	this.aliMerchantPid = aliMerchantPid;
    	return this;
    }

	@Override
	public String getAliAppAuthToken() {
    	return aliAppAuthToken;
    }

    /**
	 * 设置商户授权token 开启支付宝支付时必传
	 * 
	 * @param aliAppAuthToken 商户授权token 开启支付宝支付时必传
	 * @return 当前对象
	 */
    public MerchantPayConfig aliAppAuthToken(String aliAppAuthToken) {
    	this.aliAppAuthToken = aliAppAuthToken;
    	return this;
    }

	@Override
	public BigDecimal getAliProportion() {
    	return aliProportion;
    }

    /**
	 * 设置支付宝手续费比例 比如千分之六 数据库存0.006
	 * 
	 * @param aliProportion 支付宝手续费比例 比如千分之六 数据库存0.006
	 * @return 当前对象
	 */
    public MerchantPayConfig aliProportion(BigDecimal aliProportion) {
    	this.aliProportion = aliProportion;
    	return this;
    }

	@Override
	public Boolean getIsYuecardOpen() {
    	return isYuecardOpen;
    }

    /**
	 * 设置是否开启悦卡支付
	 * 
	 * @param isYuecardOpen 是否开启悦卡支付
	 * @return 当前对象
	 */
    public MerchantPayConfig isYuecardOpen(Boolean isYuecardOpen) {
    	this.isYuecardOpen = isYuecardOpen;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置
	 * 
	 * @param createdTime 
	 * @return 当前对象
	 */
    public MerchantPayConfig createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public LocalDateTime getModifiedTime() {
    	return modifiedTime;
    }

    /**
	 * 设置
	 * 
	 * @param modifiedTime 
	 * @return 当前对象
	 */
    public MerchantPayConfig modifiedTime(LocalDateTime modifiedTime) {
    	this.modifiedTime = modifiedTime;
    	return this;
    }

	@Override
	public MerchantPayConfigBackType getBackType() {
    	return backType;
    }

    /**
	 * 设置[枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH
	 * 
	 * @param backType [枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH
	 * @return 当前对象
	 */
    public MerchantPayConfig backType(MerchantPayConfigBackType backType) {
    	this.backType = backType;
    	return this;
    }

	@Override
	public BigDecimal getBackProportion() {
    	return backProportion;
    }

    /**
	 * 设置返佣比例
	 * 
	 * @param backProportion 返佣比例
	 * @return 当前对象
	 */
    public MerchantPayConfig backProportion(BigDecimal backProportion) {
    	this.backProportion = backProportion;
    	return this;
    }

}
